8.4 Code Snippets (Codeausschnitte)
 
Visual Studio 2005 enthält ein neues Feature, das Ihnen während des Codierens sehr hilfreich sein kann. Es handelt sich um die Code Snippets, die in der Dokumentation auch unter dem Begriff Codeausschnitte zu finden sind.
Wie kann diese Hilfe aussehen? Nehmen wir an, Sie beabsichtigen, eine for-Schleife zu implementieren. Das Grundkonstrukt dieser Schleife ist immer identisch und würde sich als doch generell dazu anbieten, automatisch so in den Code eingespielt zu werden, dass der Entwickler nur noch Startwert, Austrittsbedingung und Schrittweite angibt. Genau das leisten Code Snippets bzw. Codeausschnitte.
Codeausschnitte haben einen Namen. Der, der eine leere for-Schleife erzeugt, beispielsweise for. Das Visual Studio 2005 wird mit einer ganzen Reihe von Codeausschnitten ausgeliefert, die Sie nutzen und auch durch eigene ergänzen kännen.
8.4.1 Codeausschnitte einfügen
 
Code Snippets können Sie auf drei verschiedene Arten einfügen:
1.
Kennen Sie den Bezeichner, tragen Sie diesen in den Code ein und drücken anschließend die (Tab)-Taste. Der durch den Codeausschnitt beschriebene Code wird sofort in den Code-Editor eingespielt.
| 2. |
Positionieren Sie den Eingabecursor an der Position, an der das Code Snippet eingefügt werden soll. Öffnen Sie dann das Kontextmenü und wählen Sie den Menüpunkt Ausschnitt einfügen.. Sie erhalten daraufhin eine Auswahl wie in Abbildung 8.21 zu sehen ist angeboten. Klicken Sie hier auf Visual C# und in der IntelliSense-Unterstützung werden die Ihnen zur Verfügung stehenden Snippets angezeigt, aus der Sie das von Ihnen gewünschte auswählen. |
|
|
|
| 3. |
Öffnen Sie das Menü Bearbeiten und wählen sie den Untermenüpunkt IntelliSense und anschließend. Ausschnitt einfügen.. Der weitere Ablauf ist wie unter Punkt 2 beschrieben. |
|
|
|
 Hier klicken, um das Bild zu vergrößern
Abbildung 8.21 Einfügen eine Code Snippets
Je nachdem, welchen Codeausschnitt Sie hinzugefügt haben, sind möglicherweise »Nacharbeiten« erforderlich. Bei der oben beschrieben for-Schleife ist das die Deklaration des Schleifenzählers und die Angabe der Austrittsbedingung. Das Visual Studio zeigt die entsprechenden Elemente in einer anderen Hintergrundfarbe an (siehe Abbildung 8.22).
 Hier klicken, um das Bild zu vergrößern
Abbildung 8.22 Die durch ein Code Snippet hinzugefügte »for«-schleife
Einige Codeausschnitte sind umschließende Codeausschnitte, mit deren Hilfe Sie Codezeilen markieren und dann einen Codeausschnitt auswählen können, der die markierten Codezeilen einschließt. Durch das Markieren von Codezeilen und das anschließende Aktivieren des for-Codeausschnitts wird beispielsweise eine for-Schleife erstellt, die die markierten Codezeilen innerhalb des Schleifenblocks enthält.
8.4.2 Die Anatomie eines Codeausschnitts
 
Bei Codeausschnitten handelt es sich um XML-Dateien mit der Dateinamenerweiterung .snippet. Wir wollen uns nun exemplarisch die Datei ansehen, die für den Codeausschnitt der for-schleife verantwortlich ist.
| <?xml version="1.0" encoding="utf-8"?>
|
| <CodeSnippets xmlns="...">
|
| <CodeSnippet Format="1.0.0">
|
| <Header>
|
| <Title>for</Title>
|
| <Shortcut>for</Shortcut>
|
| <Description>
|
| Codeausschnitt für for-Schleife
|
| </Description>
|
| <Author>Microsoft Corporation</Author>
|
| <SnippetTypes>
|
| <SnippetType>Expansion</SnippetType>
|
| <SnippetType>SurroundsWith</SnippetType>
|
| </SnippetTypes>
|
| </Header>
|
| <Snippet>
|
| <Declarations>
|
| <Literal>
|
| <ID>index</ID>
|
| <Default>i</Default>
|
| <ToolTip>Index</ToolTip>
|
| </Literal>
|
| <Literal>
|
| <ID>max</ID>
|
| <Default>length</Default>
|
| <ToolTip>Maximale Länge</ToolTip>
|
| </Literal>
|
| </Declarations>
|
| <Code Language="csharp">
|
| <![CDATA[for (int $index$ = 0; $index$ < $max$; $index$++)
|
| {
|
| $selected$ $end$
|
| }]]>
|
| </Code>
|
| </Snippet>
|
| </CodeSnippet>
|
| </CodeSnippets>
|
Das ganze Dokument mit allen seinen XML-Tags wollen wir an dieser Stelle nicht analysieren. Sollten Sie sich dafür interessieren, um einen eigenen Codeausschnitt zu definieren oder einen vorhandenen zu ändern, suchen Sie in der Dokumentation nach dem mit Schemareferenz für Codeausschnitte betitelten Dokument. Die meisten XML-Tags sind wahrscheinlich aufgrund ihrer Namensgebung sowieso selbsterklärend.
Code Snippets sind natürlich sprachspezifisch. Besonders bedacht worden sind die VB-Programmierer, denen weitaus mehr Snippets zur Verfügung gestellt werden als dem C#-Programmierer. Sie brauchen sich nur die Dateilisten anzusehen, die die Suchoperation des Betriebssystems anzeigt, wenn Sie nach *.snippet suchen lassen.
Die Snippets, die für C# vordefiniert sind, finden Sie unter
\Programme\Microsoft Visual Studio 8\VC#\Snippets\1031\Visual C#
8.4.3 Eigene Code Snippets definieren
 
Einen eigenen Codeausschnitt zu definieren ist sehr einfach. Sie brauchen dazu nur Visual Studio 2005 zu starten und im Menü Datei auf Neu an dann auf Datei zu klicken. Wählen Sie im sich öffnende Dialog die Option XML-Datei aus.
Im Code-Editor beschreiben Sie nun mit den XML-Tags für Code Snippets Ihr ganz persönliches Snippet und speichern die Datei einfach nur mit der Dateierweiterung .snippet. Das ist bereits alles.
Ein Snippet für eine Konsolenanwendung könnte beispielsweise das folgende sein. Das Einbinden dieses Codeausschnitts wird eine Konsolenmeldung zur Folge haben, die auf einen Fehler hinweist.
| <?xml version="1.0" encoding="utf-8"?>
|
| <CodeSnippets xmlns="...">
|
| <CodeSnippet Format="1.0.0">
|
| <Header>
|
| <Title>
|
| Fehlermeldung
|
| </Title>
|
| </Header>
|
| <Snippet>
|
| <Code Language="CSharp">
|
| <![CDATA[Console.WriteLine("Es ist ein Fehler aufgetreten");]]>
|
| </Code>
|
| </Snippet>
|
| </CodeSnippet>
|
| </CodeSnippets>
|
Im Vergleich zum Snippet der for-Schleife ist dieses schon deutlich einfacher. Der im <Title>-Tag angegebene Name lautet auf Fehlermeldung. Dieser wird bei Auswahl der Codeausschnitte in der IntelliSense-Liste angezeigt.
Jetzt stellt sich nur noch die Frage, wie der neue Codeausschnitt in einer Anwendung eingesetzt werden kann. Dazu dient ein Tool, das als Codeausschnitt-Manager bezeichnet wird. Wählen Sie im Menü Extras dazu nur das Menüelement, das ebenfalls mit Codeausschnitts-Manager bezeichnet ist.
 Hier klicken, um das Bild zu vergrößern
Abbildung 8.23 Der »Codeausschnitts-Manager«
Falls im oberen Listenfeld etwas anderes als Visual C# eingestellt ist, wählen sie bitte zuerst die »richtige« Sprache aus. Im unteren Listenfeld sehen Sie bereits alle vordefinierten Snippets. Um das neue Snippet einzubinden, klicken Sie auf Importieren und navigieren anschließend zu der von Ihnen gespeicherten snippet-Datei. Das ist bereits alles. Im Code-Editor können Sie dann ohne großen Aufwand den Codeausschnitt, der ja durchaus auch viel mehr als nur eine Anweisung enthalten darf, auswählen.
Sie können sich mit Code Snippets das Entwicklerleben ein wenig einfacher machen, indem Sie häufiger auftretende Codesequenzen als Codeausschnitte speichern. Empfehlenswert ist es, diese in einem Ordner zu sammeln und dann den gesamten Ordner im Codeausschnitts-Manager bekannt zu geben. Damit ersparen Sie sich die Mühe, jedes einzelne Snippet immer wieder neu in das Verwaltungstool einbinden zu müssen. |